package com.tengyun.middleplatform.trade.etl.mapper.order;

import com.tengyun.middleplatform.trade.etl.bo.OrdersPayBO;
import com.tengyun.middleplatform.trade.etl.bo.OrdersPayGroupBo;
import com.tengyun.middleplatform.trade.etl.bo.OrdersRefundBO;
import com.tengyun.middleplatform.trade.etl.mapper.TYBaseMapper;
import com.tengyun.middleplatform.trade.etl.model.order.Orders;
import com.tengyun.middleplatform.trade.etl.model.result.TradingOrderCoupon;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @Entity generate.Orders
 */
@Repository
public interface OrdersMapper extends TYBaseMapper<Orders> {

    /**
     * 查询支付订单明细
     *
     * @param start 创建订单开始时间
     * @param end   创建订单开始结束
     * @return
     */
    List<OrdersPayBO> queryOrderPay(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end
            , @Param("offset") int offset, @Param("size") int size);

    Integer queryOrderPayCount(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);


    /**
     * 查询退款订单明细
     *
     * @param start 创建订单开始时间
     * @param end   创建订单开始结束
     * @return
     */
    List<OrdersRefundBO> queryOrderRefund(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end
            , @Param("offset") int offset, @Param("size") int size);

    Integer queryOrderRefundCount(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);


    /**
     * 查询优惠订单信息
     *
     * @param start 创建订单开始时间
     * @param end   创建订单开始结束
     * @return
     */
    List<TradingOrderCoupon> queryCouponOrder(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end
            , @Param("offset") int offset, @Param("size") int size);
    Integer queryCouponOrderCount(@Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
}